package com.dyw.Day14;

/**
 * @author Devil
 * @create 2022-01-23-23:43
 *
 *
 * 合并两个有序链表
 * 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
 *
 * 思路:创建一个新的空链表用来存储 两个有序链表中的较小的值 依次类推
 * 等到其中一个链表走到末尾
 * 此时只需要将未走完链表连接到合并用的链表之后即可
 */
@SuppressWarnings("all")
public class Demo01 {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode head = new ListNode();//合并用的新建链表
        ListNode node = head;//链表指针
        while(list1!=null&&list2!=null){
            if(list1.val<=list2.val){
                node.next = list1;
                list1=list1.next;
            }else{
                node.next = list2;
                list2=list2.next;
            }
            node = node.next;
        }
        if(list1!=null){
            node.next = list1;
        }else{
            node.next=list2;
        }
        return head.next;
    }
}
